package org.web.standardplatform.client.domain.check;

import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
* 用于描述表的定义信息。
* */
@Setter
@Getter
public class TableInfoDTO {

    /**
     * 原始建表语句。
     */
    private String createTableSql;

    /**
     * 表名称。
     */
    private String tableName;

    /**
     * 表的主键信息。
     */
    private List<String> primaryKeyList;

    /**
     * 表的外键名称信息。
     */
    private List<String> foreignKeyList;

    /**
     * 表的外键列信息。
     */
    private List<String> foreignColumnList;

    /**
     * 表的索引信息。
     */
    private List<String> indexColumnList;

    /**
     * 表的索引信息。
     */
    private List<String> indexNameList;

    /**
     * 表的描述信息。
     */
    private String tableComment;

    /**
     * 表的类型。
     */
    private String tableType;

    /**
     * 表涉及列名称信息。
     */
    private List<String> columnNameList;

    /***
     * 根据表描述信息，解析出来 逻辑唯一字段列表，逻辑唯一字段，可以是组合字段，也可以是单个字段，还可以是多组件逻辑唯一。
     */
    private List<String> logicUniqueColumnList;

    /***
     * 根据表描述信息，解析出来 column 列表，以及外键指定外部实体的唯一性字段。
     */
    private List<String> redundancyColumnList;

    /**
     * 表涉及列信息。
     */
    private List<ColumnInfoDTO> columnInfoDTOList;
}
